Add bare-user-only repo mode
authorAlexander Larsson <alexl@redhat.com>
Wed, 22 Mar 2017 10:59:18 +0000 (11:59 +0100)
committerAtomic Bot <atomic-devel@projectatomic.io>
Mon, 27 Mar 2017 13:48:41 +0000 (13:48 +0000)
commitbe28c10849607d3dec4ff75553d8467745cc149b
tree34b955982501ccbd2e1d1fd5403aaee9ea386459
parent612150f143e5c8f7b8982273f29e3536d2dde5fd
Add bare-user-only repo mode

This mode is similar to bare-user, but does not store the permission,
ownership (uid/gid) and xattrs in an xattr on the file objects in the
repo. Additionally it stores symlinks as symlinks rather than as
regular files+xattrs, like the bare mode. The later is needed because
we can't store the is-symlink in the xattr.

This means that some metadata is lost, such as the uid. When reading a
repo like this we always report uid, gid as 0, and no xattrs, so
unless this is true in the commit the resulting repository will
not fsck correctly.

However, it the main usecase of the repository is to check out with
--user-mode, then no information is lost, and the repository can
work on filesystems without xattrs (such as tmpfs).

Closes: #750
Approved by: cgwalters
src/libostree/ostree-core-private.h
src/libostree/ostree-core.h
src/libostree/ostree-repo-checkout.c
src/libostree/ostree-repo-commit.c
src/libostree/ostree-repo.c